package com.cn.web.bean;

import org.apache.activemq.transport.stomp.Stomp;

/**
 * 发送状态
 * Created by YangJie on 2016/4/22.
 */
public enum SendStatus {
    /**
     * 正在发送
     */
    SENDING(0){
        @Override
        public String getName() {
            return "正在发送";
        }
    },
    /**
     * 发送成功
     */
    SUCCESS(1) {
        @Override
        public String getName() {
            return "发送成功";
        }
    },
    /**
     * 发送失败
     */
    FAILURE(2) {
        @Override
        public String getName() {
            return "发送失败";
        }
    },
    /**
     * 等待发送
     */
    WAIT(3) {
        @Override
        public String getName() {
            return "等待发送";
        }
    };

    private final int value ;

    SendStatus(int value) {
        this.value = value ;
    }

    public abstract String getName();

    public int getValue() {
        return value;
    }

    /**
     * 将状态值转化为发送状态对象
     * @param val 状态值
     * @return 状态对象
     */
    public static final SendStatus parse(int val) {
        if (SENDING.value == val) {
            return SENDING;
        } else if(SUCCESS.value == val) {
            return SUCCESS;
        } else if(FAILURE.value == val) {
            return FAILURE ;
        } else if (WAIT.value == val) {
            return WAIT ;
        }
        return null ;
    }
    /**
     * 将状态值转化为发送状态对象
     * @param valString 状态String值
     * @return 状态对象
     */
    public static final SendStatus parse(String valString) {
        int value ;
        try {
            value = Integer.parseInt(valString);
        } catch (NumberFormatException nfe) {
            return null ;
        }

        return parse(value) ;
    }
}
